/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package starfox.personagens;

import org.newdawn.slick.Animation;
import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.SpriteSheet;
import org.newdawn.slick.geom.Vector2f;
import util.CaixaColisao;

/**
 *
 * @author Lucas
 */

//Classe de tiles (os "retângulos" que a cabeça do chefe solta)
public class Tile {
    //Sprites
    SpriteSheet sprites = null;
    //Imagem animada com os sprites
    Animation sprite = null;

    //Posição
    Vector2f pos = new Vector2f();

    //Velocidade do tiro.
    float velocidade = 1.2f;

    //Caixa de colisão
    CaixaColisao box = null;

    //Vetor para ver qual caminho deve ser percorrido até à Arwing
    Vector2f caminho = null;
    //Ângulo do vetor de caminho
    double angle;

    public Tile(float x, float y, Vector2f arwPos) throws SlickException{
        sprites = new SpriteSheet(new Image("imagens/sprites/Tile.png"), 20, 22);
        sprite = new Animation(sprites, 50);
        pos.x = x;
        pos.y = y;
        caminho = new Vector2f(arwPos.x - pos.x, arwPos.y - pos.y);
        angle = caminho.getTheta();
        //Criar uma caixa de colisão em torno do tile
        box = new CaixaColisao(pos.x, pos.y, sprite.getWidth(), sprite.getHeight());
    }

    public int getWidth(){
        return sprite.getWidth();
    }

    public int getHeight(){
        return sprite.getHeight();
    }

    public Vector2f getPos(){
        return pos;
    }

    public CaixaColisao getCaixaColisao(){
        return box;
    }

    public void render(){
        sprite.draw(pos.x,pos.y);
    }

    public void update(int delta) {
        //Mover o tiro de acordo com o caminho a ser percorrido
        pos.x += velocidade*Math.cos(angle*Math.PI/180)*delta;
        pos.y += velocidade*Math.sin(angle*Math.PI/180)*delta;
        //Atualizar a posição da caixa de colisão
        box.update(pos.x, pos.y);
    }

}